第12回日本情報オリンピック D - 暑い日々
https://atcoder.jp/contests/joi2013yo/tasks/joi2013yo_d
提出
code: python
d, n = map(int, input().split())
t = int(input()) for _ in range(d)
abc = list(map(int, input().split())) for _ in range(n)
print(abc)
# i日目の派手さ dpi と i-1日目のはでさ dpi-1 の絶対値の差?
#
dp = []
解答
code: python
d, n = map(int, input().split())
t = int(input()) for _ in range(d)
abc = list(map(int, input().split())) for _ in range(n)
temp = []
color = []
for i in range(n):
a, b, c = abci
temp.append((a, b))
color.append(c)
dp = [-1 * n for _ in range(d + 1)]
# dpij := i 日目に服 j を着たときの派手さの差の絶対値の合計の最大値
# 初日に着る服
# 1日目の服の候補は服3と服4
for i in range(n):
if tempi0 <= t0 <= tempi1:
dp1i = 0
# print(dp)
# -1, -1, -1, -1], -1, -1, 0, 0, -1, -1, -1, -1, [-1, -1, -1, -1
# print(temp)
# (20, 25), (23, 29), (21, 35), (28, 33)
# print(color)
# 30, 90, 60, 40
for di in range(1, d): # 前日
for i in range(n): # 服
if tempi0 <= tdi <= tempi1: # 服の気温が 今日(di + 1 日)に着るのに適していたら
for j in range(n): # 服
if dpdij != -1: # 前日着れなかったものを除く
# 現状維持か更新か
dpdi + 1i = max(dpdi + 1i, dpdij + abs(colorj - colori))
# print(dp)
# -1, -1, -1, -1], -1, -1, 0, 0, -1, 50, 20, -1, [-1, -1, 80, -1
# 3 日目の服の候補は服 3 のみ
print(max(dpd))
テーマ
#dp
蟻本 2-3 01ナップサック問題
メモ
蟻本をPythonで (初級編)